package com.rory.service;

import com.rory.dao.CrudDao;
import com.rory.entity.DataEntity;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * File: CrudService.
 * Created by Rory on 2016/11/15.
 */
public abstract class CrudService<D extends CrudDao<T>, T extends DataEntity<T>> extends BaseService{

    /**
     * 持久层对象
     */
    @Autowired
    protected D dao;

    /**
     * 获取单条数据
     * @param parameterId
     * @return 返回结果
     */
    public T getByKey(Integer parameterId) {
        return dao.selectByPrimaryKey(parameterId);
    }

    /**
     * 查询多条数据
     * @param primarys 参数对象
     * @return 返回结果
     */
    public List<T> getByPrimarys(T primarys){
        return dao.selectByPrimarys(primarys);
    }

    /**
     * 删除单条数据(物理删除)
     * @param parameterId
     * @return 返回结果
     */
    public int deleteByKey(Integer parameterId){
        return dao.deleteByPrimaryKey(parameterId);
    }

    /**
     * 更新数据
     * @param primarys 参数对象
     * @return 返回结果
     */
    public int updateByPrimarys(T primarys){
        return dao.updateByPrimaryKeySelective(primarys);
    }

    /**
     * 新增数据
     * @param primarys 参数对象
     * @return 返回结果
     */
    public int addByPrimarys(T primarys){
        return dao.insertSelective(primarys);
    }
}
